import { VantComponent } from '../common/component'
import { WHITE } from '../common/color'
import { getSystemInfoSync } from '../common/utils'
VantComponent({
    props: {
        message: String,
        background: String,
        type: {
            type: String,
            value: 'danger',
        },
        color: {
            type: String,
            value: WHITE,
        },
        duration: {
            type: Number,
            value: 3000,
        },
        zIndex: {
            type: Number,
            value: 110,
        },
        safeAreaInsetTop: {
            type: Boolean,
            value: false,
        },
        top: null,
    },
    data: {
        show: false,
        onOpened: null,
        onClose: null,
        onClick: null,
    },
    created() {
        const { statusBarHeight } = getSystemInfoSync()
        this.setData({ statusBarHeight })
    },
    methods: {
        show() {
            const { duration, onOpened } = this.data
            clearTimeout(this.timer)
            this.setData({ show: true })
            wx.nextTick(onOpened)
            if (duration > 0 && duration !== Infinity) {
                this.timer = setTimeout(() => {
                    this.hide()
                }, duration)
            }
        },
        hide() {
            const { onClose } = this.data
            clearTimeout(this.timer)
            this.setData({ show: false })
            wx.nextTick(onClose)
        },
        onTap(event) {
            const { onClick } = this.data
            if (onClick) {
                onClick(event.detail)
            }
        },
    },
})
